Memcached命令-存储命令-查找命令-清理命令
Memcached set 存储命令
Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。
如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。
语法:
set 命令的基本语法格式如下:
set key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
以下实例中我们设置:
- key → runoob
- flag → 0
- exptime → 900 (以秒为单位)
- bytes → 9 (数据存储的字节数)
- value → memcached
set wenhy0 900 9
memcached
STORED
get wenhy
VALUE wenhy 0 9
memcached
END
输出
如果数据设置成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- ERROR:在保持失败后输出。
Memcached add 命令
Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中。
如果 add 的 key 已经存在,则不会更新数据,之前的值将仍然保持相同,并且您将获得响应 NOT_STORED。
语法:
add 命令的基本语法格式如下:
add key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
以下实例中我们设置:
- key → new_key
- flag → 0
- exptime → 900 (以秒为单位)
- bytes → 10 (数据存储的字节数)
- value → data_value
add new_key 0 900 10
data_value
STORED
get new_key
VALUE new_key 0 10
data_value
END
输出
如果数据添加成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- NOT_STORED :在保持失败后输出。
Memcached replace 命令
Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值)。
如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED。
语法:
replace 命令的基本语法格式如下:
replace key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
以下实例中我们设置:
- key → mykey
- flag → 0
- exptime → 900 (以秒为单位)
- bytes → 10 (数据存储的字节数)
- value → data_value
以下实例中我们使用的键位 'mykey' 并存储对应的值 data_value。执行后我们替换相同的 key 的值为 'some_other_value'。
add mykey 0 900 10
data_value
STORED
get mykey
VALUE mykey 0 10
data_value
END
replace mykey 0 900 16
some_other_value
get mykey
VALUE mykey 0 16
some_other_value
END
输出
如果数据添加成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- NOT_STORED:执行替换失败后输出。
Memcached append 命令
Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。
语法:
append 命令的基本语法格式如下:
append key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
实例如下:
- 首先我们在 Memcached 中存储一个键 runoob,其值为 memcached。
- 然后,我们使用 get 命令检索该值。
- 然后,我们使用 append 命令在键为 runoob 的值后面追加 "redis"。
- 最后,我们再使用 get 命令检索该值。
set wenhy 0 900 9
memcached
STORED
get wenhy
VALUE wenhy 0 9
memcached
END
append wenhy 0 900 5
redis
STORED
get wenhy
VALUE wenhy 0 13
memcachedredis
END
输出
如果数据添加成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- NOT_STORED:该键在 Memcached 上不存在。
- CLIENT_ERROR:执行错误。
Memcached prepend 命令
Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。
语法:
prepend 命令的基本语法格式如下:
prepend key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
实例如下:
- 首先我们在 Memcached 中存储一个键 runoob,其值为 memcached。
- 然后,我们使用 get 命令检索该值。
- 然后,我们使用 prepend 命令在键为 runoob 的值后面追加 "redis"。
- 最后,我们再使用 get 命令检索该值。
set wenhy 0 900 9
memcached
STORED
get wenhy
VALUE wenhy 0 14
memcached
END
prepend wenhy 0 900 5
redis
STORED
get wenhy
VALUE wenhy 0 14
redismemcached
END
输出
如果数据添加成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- NOT_STORED:该键在 Memcached 上不存在。
- CLIENT_ERROR:执行错误。
Memcached get 查找命令
Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
语法:
get 命令的基本语法格式如下:
get key
多个 key 使用空格隔开,如下:
get key1 key2 key3
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
实例
在以下实例中,我们使用 runoob 作为 key,过期时间设置为 900 秒。
set wenhy 0 900 9
memcached
STORED
get wenhy
VALUE wenhy 0 9
memcached
END
Memcached delete 命令
Memcached delete 命令用于删除已存在的 key(键)。
语法:
delete 命令的基本语法格式如下:
delete key [noreply]
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- noreply(可选): 该参数告知服务器不需要返回数据
实例
在以下实例中,我们使用 runoob 作为 key,过期时间设置为 900 秒。之后我们使用 delete 命令删除该 key。
set wenhy 0 900 9
memcached
STORED
get wenhy
VALUE wenhy 0 9
memcached
END
delete wenhy
DELETED
get wenhy
END
delete wenhy
NOT_FOUND
输出
输出信息说明:
- DELETED:删除成功。
- ERROR:语法错误或删除失败。
- NOT_FOUND:key 不存在。
Memcached incr 与 decr 命令
Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。
incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。
如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。
incr 命令
语法:
incr 命令的基本语法格式如下:
incr key increment_value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- increment_value: 增加的数值。
实例
在以下实例中,我们使用 visitors 作为 key,初始值为 10,之后进行加 5 操作。
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
incr visitors 5
15
get visitors
VALUE visitors 0 2
15
END
输出
输出信息说明:
- NOT_FOUND:key 不存在。
- CLIENT_ERROR:自增值不是对象。
- ERROR其他错误,如语法错误等。
decr 命令
decr 命令的基本语法格式如下:
decr key decrement_value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- decrement_value: 减少的数值。
实例
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
decr visitors 5
5
get visitors
VALUE visitors 0 1
5
END
在以下实例中,我们使用 visitors 作为 key,初始值为 10,之后进行减 5 操作。
输出
输出信息说明:
- NOT_FOUND:key 不存在。
- CLIENT_ERROR:自增值不是对象。
- ERROR其他错误,如语法错误等。
Memcached flush_all 清理命令
Memcached flush_all 命令用于用于清理缓存中的所有 key=>value(键=>值) 对。
该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。
语法:
flush_all 命令的基本语法格式如下:
flush_all [time] [noreply]
实例
清理缓存:
set runoob 0 900 9
memcached
STORED
get runoob
VALUE runoob 0 9
memcached
END
flush_all
OK
get runoob
END